\chapter{Simulador de rede}
\label{cap:simulador}

%O que é?
O simulador de rede (versão 2), mais conhecido por NS2, é uma ferramenta de simulação que se baseia em evento discreto.

%Como é ?
NS2 é composto principalmente por duas linguagens de programação: C++ e OTcl (TCL orientado a objeto) \cite{teerawat_book}.

\section{Arquitetura básica de NS2} (MELHORAR DESENVOLVER MAIS)
NS2 provês através da linha de comando, um executável \textbf{ns} e um arquivo tcl como entrada.

%O que compõe ns2
NS2 consiste principalmente de C++ e OTcl. C++ cuida de mecanismos internos dos objetos de simulação, e as interações entre esses mesmos
objetos. Já OTcl cria os cenários para simulações montando e configurando os objetos, e também faz escalonamento de eventos discretos.

%COMO C++ CONVERSA COM OTcl
C++ e OTcl são ligados através de TclCL. As variáveis no domínio de OTcl (mapeados a objetos de C++) são apontados como alavancas. No domínio OTcl,
uma alavanca atua como interface de interação 

Depois de simulações, NS2 gera resultado de simulação (em texto) e (animação). Para interpretar esses resultados graficamente e interativamente,
ferramentas como NAM (animador de rede) e \textit{Xgraph} são usados. Para analisar um comportamento de rede em particular, usuários podem extrair
um subconjunto relevante de dados de texto e transformá-lo em uma apresentação mais concisa.  
\section{Estrutura de diretórios}
\begin{figure}[!hbtp]
\centering
\includegraphics[scale=0.3]{ns2_directory_structure.pdf}
\caption{Estrutura do diretório de NS2}
\label{fig:estr_dir}
\end{figure}

\section{Inclusão de um protocolo de roteamento}